export function staiAnalyzeResults(userAnswers) {
  // 初始化得分
  let front20Score = 0; // 前20题得分（短期焦虑）
  let back20Score = 0;  // 后20题得分（长期焦虑）
	
  // 先按照 questionId 进行排序
  userAnswers.sort((a, b) => parseInt(a.questionId) - parseInt(b.questionId));
 
  // 获取前20个和后20个问题
  const front20Questions = userAnswers.slice(0, 20);    // 第1-20题（短期焦虑）
  const back20Questions = userAnswers.slice(20, 40);   // 第21-40题（长期焦虑）
  const genderValue = userAnswers.slice(-1)[0];             // 最后一题（性别）
  const gender = genderValue.answer === "1" ? 'male' : 'female';

  // 计算前20题和后20题的总分
  front20Questions.forEach((answer) => {
    front20Score += parseInt(answer.answer);
  });
 
  back20Questions.forEach((answer) => {
    back20Score += parseInt(answer.answer);
  });

  // 根据性别定义正常范围（均值 ± 标准差）
  const ranges = {
    male: {
      front20: { mean: 39.71, sd: 8.89 }, // 短期焦虑：39.71±8.89
      back20: { mean: 41.11, sd: 7.74 }   // 长期焦虑：41.11±7.74
    },
    female: {
      front20: { mean: 38.97, sd: 8.45 }, // 短期焦虑：38.97±8.45
      back20: { mean: 41.31, sd: 7.54 }   // 长期焦虑：41.31±7.54
    }
  };

  // 根据性别选择对应的范围
  const genderRange = gender === 'male' ? ranges.male : ranges.female;

  // 计算前20题和后20题的 z 分数（标准化分数）
  const front20Z = (front20Score - genderRange.front20.mean) / genderRange.front20.sd;
  const back20Z = (back20Score - genderRange.back20.mean) / genderRange.back20.sd;

  // 判断短期和长期焦虑状态（超过1个标准差）
  const shortTermAnxiety = front20Z > 1 ? "有短期焦虑" : "无短期焦虑";
  const longTermAnxiety = back20Z > 1 ? "有长期焦虑" : "无长期焦虑";

  // 返回分析结果
  return {
    shortTermAnxiety,  // 短期焦虑状态
    longTermAnxiety,   // 长期焦虑状态
    front20Score,      // 短期焦虑得分
    back20Score,       // 长期焦虑得分
    gender // 返回性别
  };
}